#ifndef _CLIENT_
#define _CLIENT_
#include <func.h>
#include <mysql/mysql.h>
#include "lstack.h"
typedef struct entry{
    int CMD; // 命令字段
    int fileLength; //文件长度，如果不是puts或者gets，为-1;
    int dataLength; //data数组长度
    char data[1024];//存储文件路径 如dir1/file
    char md5[32];
}ENTRY;

typedef struct train_s{
    int dataLength;
    char data[4096];
}train_t;


typedef enum commmand{
    CD,
    LS,
    PUTS,
    GETS,
    REMOVE,
    PWD,
    MKDIR,
    RMDIR,
    EXIT,
}CMD;

char* pathFix(ENTRY* entry,Lstack* stack);

void serverWork(int netfd);
char* generateStr();
char* loginVerify(int netfd, MYSQL* mysql);
char* login(int netfd, MYSQL* mysql);    //服务端登陆程序
int regisUser(int netfd, MYSQL* mysql);

int mkDir(char *realPath,MYSQL* mysql,char* username,ENTRY *entry);
int rmDir(char *realPath,MYSQL* mysql,ENTRY *entry);
int reMove(char *realPath,MYSQL* mysql,ENTRY *entry);
int mPwd(int netfd,char *realPath,MYSQL* mysql);

int lsServer(int netfd,char* path,MYSQL* mysql);
int cd(char* toPath, char* nowPath, MYSQL* mysql);
#endif



